#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
//struct ListNode {
//    int val;
//    struct ListNode* next;
//  
//};
//void removeElements(struct ListNode** head, int val) {
//    if (!head)
//    {
//        return;
//    }
//    /*if (!head->next)
//    {
//        if (head->val == val)
//        {
//            free(head);
//            head = NULL;
//            return;
//        }
//        return;
//    }*/
//    struct ListNode* cur = *head;
//    do
//    {
//        if (cur->next->val == val)
//        {
//            struct ListNode* tmp = cur->next->next;
//            free(cur->next);
//            cur->next = tmp;
//        }
//        else
//        {
//            cur = cur->next;
//        }
//    } while (cur->next->next);
//    return;
//}
//struct ListNode* InitSLL(int x)
//{
//    struct ListNode* ret = (struct ListNode*)malloc(sizeof(struct ListNode));
//    if (!ret)
//    {
//        perror("calloc");
//        return NULL;
//    }
//    ret->val = x;
//    ret->next = NULL;
//    return ret;
//}
//
//
//int main()
//{
//    struct ListNode* head = NULL;
//    head = InitSLL(1);
//    removeElements(&head, 6);
//    return 0;
//}


//typedef struct contact
//{
//	char a[10];
//	char b[10];
//}con;
//
//typedef struct TTP
//{
//	char b;
//	con* ppt;
//	int a;
//}TTP;
//
//
//int main()
//{
//	/*printf("%d\n", sizeof(con));
//	printf("%d\n", sizeof(TTP));*/
//	//TTP* p1 = (TTP*)malloc(sizeof(TTP));
//	//char a[10] = { 0 };
//	con* p1 = (con*)malloc(sizeof(con));
//	if (!p1)
//	{
//		return;
//	}
//	//(*p1).a = { 0 };
//	printf("%p\n", p1);
//	printf("%p\n", &(p1->a[10]));
//	printf("%p", p1->b);
//	return 0;
//}
//
//int main()
//{
//    int nums1[] = { 1};
//    int nums2 = {};
//    int i = 0;
//    int p = 0;
//    int q = 0;
//    int m = 3;
//    int n = 3;
//    int nums3[10] = { 0 };
//    for (i = 0; i < m + n; i++)
//    {
//        if (nums1[p] >= nums2[q])
//        {
//            nums3[i] = nums2[q];
//            if (q == n - 1)
//            {
//                while(p < m)
//                {
//                    nums3[++i] = nums1[p];
//                    p++;
//                }
//                break;
//            }
//            q++;
//        }
//        else
//        {
//            nums3[i] = nums1[p];
//            if (p == m - 1)
//            {
//                while(q < n)
//                {
//                    nums3[++i] = nums2[q];
//                    q++;
//                }
//                break;
//           
//            }
//            p++;
//        }
//    }
//    for (i = 0; i < m + n; i++)
//    {
//        nums1[i] = nums3[i];
//        printf("%d ", nums1[i]); 
//    }
//	return 0;
//}



//int main()
//{
//	int nums1[] = { 1,2,3 };
//	int nums2[] = { 2,4,5 };
//	int nums3[10] = { 0 };
//	int  i = 0;
//	int p = 0;
//	int q = 0;
//	for (i = 0; i < 3; i++)
//	{
//		if (nums1[p] > nums2[q])
//		{
//			nums3[i] = nums2[q++];
//		}
//		else
//		{
//			nums3[i] = nums1[p++];
//		}
//	}
//	if(p == 2)
//	return 0;
//}
struct ListNode {
	int val;
	struct ListNode* next;
};




//int main()
//{
//    struct ListNode* head = NULL;
//
//    int val = 6;
//    struct ListNode* cur1, * cur2;
//    cur2->next = cur1 = head;
//    while (cur1)
//    {
//        if (cur1->val != val)
//        {
//            cur1 = cur1->next;
//            cur2 = cur2->next;
//        }
//        else
//        {
//            cur1 = cur1->next;
//            free(cur2->next);
//            cur2->next = cur1;
//        }
//    }
//	return 0;
//}



int main()
{
	int* p = NULL;
	assert(p == NULL);
	return 0;
}